﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Domain.Entitys
{
    /// <summary>
    /// 薪酬发放详细信息表
    /// </summary>
    public class SGD
    {
        /// <summary>
        /// 唯一标识符，作为主键且为自动增长列，用于在系统中唯一确定该员工薪酬发放明细记录，类型为整数。
        /// </summary>
        [Key]
        public int GrdId { get; set; }

        /// <summary>
        /// 薪酬发放编号，用于关联对应的薪酬发放批次，表明该员工此次薪酬发放所属的整体发放批次，类型为字符串（可根据实际编号格式调整具体类型）。
        /// </summary>
        public string SalaryGrantId { get; set; }

        /// <summary>
        /// 档案编号，用于唯一标识员工个人档案，进而关联到员工的其他基础信息等，类型为字符串（可根据档案编号格式确定具体类型）。
        /// </summary>
        public string HumanId { get; set; }

        /// <summary>
        /// 姓名，记录获得此次薪酬发放的员工姓名，类型为字符串。
        /// </summary>
        public string HumanName { get; set; }

        /// <summary>
        /// 奖励金额，记录该员工此次薪酬发放中包含的奖励部分金额，如奖金等，类型为 decimal（用于精确的金额计算）。
        /// </summary>
        public decimal BounsSum { get; set; }

        /// <summary>
        /// 销售绩效金额，若员工工作涉及销售业务，记录其销售绩效对应的金额，类型为 decimal。
        /// </summary>
        public decimal SaleSum { get; set; }

        /// <summary>
        /// 应扣金额，记录此次薪酬发放中需要扣除的各项费用金额总和，如社保、税费等，类型为 decimal。
        /// </summary>
        public decimal DeductSum { get; set; }

        /// <summary>
        /// 标准薪酬总额，依据薪酬标准计算得出的该员工此次应得的薪酬总额（未扣除相关费用前），类型为 decimal。
        /// </summary>
        public decimal SalaryStandardSum { get; set; }

        /// <summary>
        /// 实发薪酬总额，在标准薪酬总额基础上，加上奖励金额、销售绩效金额，再扣除应扣金额后，实际发放给员工的薪酬金额，类型为 decimal。
        /// </summary>
        public decimal SalaryPaidSum { get; set; }
    }
}
